/**
 * 选择大于开始时间的日期格式
 * 如果开始时间为空，则提示；
 * @param {}
 *            id 	开始时间文本ID
 *            clew 	提示语
 */
function EndDatePicker(id,clew) {
	var conStartDate = document.getElementById(id).value;
	if(conStartDate=='') {
 		alert(clew);
 		return;
 	}
	WdatePicker({minDate:conStartDate,isShowClear:false,readOnly:true});
}

/**
 * 判断指定名称的复选框是否被选中
 *
 * @param {}
 *            chname复选框名称
 */
function chkCheckCha(chname) {
	var obj = jQuery("[name='" + chname + "']");
	var isCheck = false;
	for (var i = 0; i < obj.length; i++) {
		if (obj[i].checked == true) {
			isCheck = true;
			break;
		}
	}
	return isCheck;
}

/**
 * 得到指定名称的复选框被选中个数
 *
 * @param {}
 *            chname
 * @return {}
 */
function checkChangedOnly(chname) {
	var obj = jQuery("[name='" + chname + "']");
	var count = 0;
	for (var i = 0; i < obj.length; i++) {
		if (obj[i].checked == true) {
			count++;
		}
	}
	return count;
}

/**
 * 得到指定名称的单个被选中的复选择框的值
 *
 * @param {}
 *            chname
 */
function getValueCheckOnly(chname) {
	var str = "";
	jQuery("[name='" + chname + "'][checked]").each(function() {
				str += jQuery(this).val();
			});
	return str;
}

/**
 * 得到多个复选框的值
 *
 * @param {}
 *            chname
 */
function getCheckVals(chname) {
	var str = "";
	jQuery("[name='" + chname + "'][checked]").each(function() {
				str += jQuery(this).val() + "@";
			});
	return str.substring(0, str.length - 1);
}

function getCheckHidden(chname,tagId){
   var strval = getCheckVals(chname);
   var arr = "";
   var temp = strval.split("@");
   for(var i = 0;i<temp.length;i++){
      var val = temp[i];
      var id = tagId+val;
      var tag = $("#"+id).val();
      arr+=tag+"@";  
   }
   return arr;
}

/**
 * 得到一些复选框的值 复选框的值中是否包含有","若无则用","将多个值组合 若有则先将值用","隔开再用","组合
 *
 * @param {}
 *            chname
 */
function getSomeChVals(chname) {
	var str = "";
	jQuery("[name='" + chname + "'][checked]").each(function() {
				var temp = jQuery(this).val();
				if (temp.indexOf(",") == -1) {
					str += temp + ",";
				} else {
					var tempValue = temp.split(",");
					str += tempValue[0] + ",";
				}
			});
	return str.substring(0, str.length - 1);
}

function getAnyCheckValue(chname) {
	var str = getCheckVals(chname);
	var tstr = str.split("@");
	var result = "";
	for (var i = 0; i < tstr.length; i++) {
		var temp = tstr[i].split(",");
		result += temp[0] + ",";
	}
	return result.substring(0, result.length - 1);
}

/**
 * 得到指定名称的有多个值的多个复选框的值
 *
 * @param chname
 */
function getCheckValues(chname) {
	var str = "";
	var sids = "";
	var snames = "";
	jQuery("[name='checkbox'][checked]").each(function() {
				var strval = jQuery(this).val();
				var temp = strval.split(",");
				var sid = temp[0];
				var sname = temp[1];
				sids += sid + ",";
				snames += sname + ", ";
			});
	str = sids.substring(0, sids.length - 1) + "|"
			+ snames.substring(0, snames.length - 2);
	return str;
}

/**
 * 判断复选框的状态
 *
 * @param {}
 *            chname
 */
function decideCheckState(chname) {
	var str = getCheckVals(chname);
	var tstr = str.split("@");
	var temp = "";
	for (var i = 0; i < tstr.length; i++) {
		var tval = tstr[i];
		var tem = tval.substring(tval.length - 1, tval.length);
		temp += tem;
	}
	return temp;
}
// 复选框的值是否全为0
function checkStringz(chname) {
	var regex = /^[0]*$/g;
	var source = decideCheckState(chname);
	return regex.test(source);
}
// 复选框的值是否全为1
function checkStringO(chname) {
	var regex = /^[1]*$/g;
	var source = decideCheckState(chname);
	return regex.test(source);
}

function decideStrallz(source) {
	var regex = /^[0]*$/g;
	return regex.test(source);
}
function decideStrallO(source) {
	var regex = /^[1]*$/g;
	return regex.test(source);
}
/**
 * 复选框全选v
 *
 * @param {}
 *            chname
 */
function checkboxAll(chname) {
	jQuery("[name='" + chname + "']").each(function() {
				jQuery(this).attr("checked", true);
			});
}

/**
 * 复选框反选
 *
 * @param {}
 *            chname
 */
function inverSelect(chname) {
	jQuery("[name='" + chname + "']").each(function() {
				if (jQuery(this).attr("checked")) {
					jQuery(this).attr("checked", false);
				} else {
					jQuery(this).attr("checked", true);
				}
			});
}

function selects(all_id,chname){
   $("#"+all_id).click(function(){      
   	  if($(this).attr("checked")){
   	     checkboxAll(chname);
   	  }else{
   	     clearSelect(chname);
   	  }
   });
}
function mouseHover(obj){
   alert($(obj).attr("style"));
}

/**
 * 取消全选或反选
 *
 * @param {}
 *            chname
 */
function clearSelect(chname) {
	jQuery("[name='" + chname + "']").each(function() {
				jQuery(this).attr("checked", false);
			});
}

/**
 * 点击删除按钮时使用
 */
function dele(chname) {
	var b = chkCheckCha(chname);
	if (!b) {
		alert("请选择要删除的记录");
		return false;
	} else if (confirm("删除后无法恢复，确定删除吗?")) {
		jQuery("[name='form1']").submit();
	} else {
		return false;
	}
}

/**
 * 校验时间格式
 *
 * @param {}
 *            timevale
 * @return {}
 */
function checkTime(timevale) {
	var regex = /^(([0-1][0-9])|([2][0-4]))(\:)[0-5][0-9](\:)[0-5][0-9]$/g;
	var b = regex.test(timevale);
	return b;
}

/**
 * 校验Ip地址格式
 *
 * @param {}
 *            ipvale
 */
function checkIp(ipvale) {
	var regex = /^([1-9]|[1-9]\d|1\d{2}|2[0-1]\d|22[0-3])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}$/;
	var b = regex.test(ipvale);
	return b;
}

/**
 * 是否是由字母或数字组成的字符串
 *
 * @param {}
 *            letVale
 */
function checkLetOrNum(letVale) {
	var regex = /^([a-zA-Z_]{1})([\w]*)$/g;
	var b = regex.test(letVale);
	return b;
}

/**
 * 取字符串的第index的字符
 *
 * @param {}
 *            source
 * @param {}
 *            index
 */
function interceptStr(source, index) {
	var temp = source.charAt(index);
	return parseInt(temp);
}

/**
 * 检查字符串中beindex位置到endindex位置之间是否全由targer组成
 *
 * @param {}
 *            source
 * @param {}
 *            targer
 * @param {}
 *            beindex
 * @param {}
 *            endindex
 */
function checkStr(source, targer, beindex, endindex) {
	var flag = false;
	for (var i = beindex; i <= endindex; i++) {
		var temp = source.charAt(i);
		if (targer == temp) {
			flag = true;
		}
	}
	return flag;
}

/**
 * 验证字符串中的某一段是否全为0
 *
 * @param {}
 *            source
 * @param {}
 *            begin
 * @param {}
 *            end
 * @return {}
 */
function checkString(source, begin, end) {
	var regex = /^[0]*$/g;
	var temp = source.substring(begin, end + 1);
	//alert("###temp=="+temp);
	return regex.test(temp);
}

/**
 * 判断两个字符串是否想等 相等返回true否则返回false
 *
 * @param {}
 *            source
 * @param {}
 *            target
 */
function decideString(source, target) {
	return (source == target) ? true : false;
}
/**
 * 将字符串转换成数字
 * @param val
 * @return
 */
function stringToNumber(val){
	return Number(val);
}
/**
 * 验证是否是整数或小数
 * @param source
 * @return
 */
function checkIntAndFloat(source){
	var regex = /^[0-9]+(\.[0-9]+)?$/g;
	return regex.test(source);
}
/**
 * 验证是否是整数或只有一位小数点的小数
 *
 * @param {}
 *            source
 * @return {}
 */
function checkFloat(source) {
	// var regex=/^[1-9]d*.d{1}|0.d{1}[1-9]d{1}$/g;
	var regex = /^[0-9]+\d*[\.\d]?\d{0,1}$/g;
	return regex.test(source);
}
/**
 * 验证是否两位数以内的正整数
 *
 * @param {}
 *            source
 * @return {}
 */
function checkTwoInt(source) {
	var regex = /^[1-9][0-9]?$/g;  //两位数以内的正整数
	return regex.test(source);
}

/**
 * 验证数字
 *
 * @param {}
 *            source
 * @return {}
 */
function checkNumber(source) {
	var regex = /^(\-|\+)?\d+(\.\d+)?$/;  
	return regex.test(source);
}

/**
 * 验证是否是两位小数的正实数
 *
 * @param {}
 *            source
 * @return {}
 */
function checkTowLenFloat(source) {
	var regex = /^[0-9]+(.[0-9]{2})?$/g;//只能输入有两位小数的正实数
	return regex.test(source);
}
/**
 * 验证是否是两位或一位小数的正实数
 *
 * @param {}
 *            source
 * @return {}
 */
function checkTowLenFloatt(source) {
	var regex = /^[0-9]+(.[0-9]{1,2})?$/g;//只能输入有两位小数的正实数
	return regex.test(source);
}
/**
 * 验证是否是整数或只有2位小数的数
 *
 * @param {}
 *            source
 */
function checkTowFloat(source) {
	var regex = /^[1-9]+\d*[\.\d]?\d{0,2}$/g;
	return regex.test(source);
}
/**
 * 验证是否有空格
 *
 * @param {}
 *            source
 */
function checkSpace(source) {
	var regex = /\s/g;
	return regex.test(source);
}

/**
 * 检查一个数是否是整数则位数在8以内
 *
 * @param {}
 *            source
 */
function checkIntLeng(source) {
	var regex = /^[1-9]{1}[0-9]{1,7}$/g
	return regex.test(source);
}
/**
 * 检查一个数是否是整数则位数在2以内
 *
 * @param {}
 *            source
 */
function checkIntTwoLeng(source) {
	var regex = /^[1-9]{1}[0-9]{1,2}$/g
	return regex.test(source);
}
/**
 * 验证正整数
 *
 * @param {}
 *            source
 */
function checkInt(source) {
	// var regex=/^[1-9]d*$/g
	var regex = /^[0-9]*[1-9][0-9]*$/g
	return regex.test(source);
}

/**
 * 验证非负数
 *
 * @param {}
 *            source
 */
function checkNegative(source) {
	var regex=/^[1-9]\d*|0$/g
	return regex.test(source);
}

/**
 * 分割IP地址
 *
 * @param {}
 *            ipAddress
 */
function getIpNum(ipAddress) {
	var ip = ipAddress.split(".");
	var a = parseInt(ip[0]);
	var b = parseInt(ip[1]);
	var c = parseInt(ip[2]);
	var d = parseInt(ip[3]);
	var ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;
	return ipNum;
}

/**
 * 判断IP大小
 */
function decideIp(startIp, endIp) {
	var ip1 = getIpNum(startIp);
	var ip2 = getIpNum(endIp);
	return (ip2 > ip1) ? true : false;
}

/**
 * 验证是否全是空格
 *
 * @param {}
 *            source
 * @return {}
 */
function checkAllSpace(source) {
	var regex = /^\s+$/g
	return regex.test(source);
}

/*******************************************************************************
 * openWindow(url)函数：弹出窗口 * url：路径 * left:左边的距离 * top：上边的距离 * width：窗口宽度 *
 * height：窗口高度 * resize：yes时可调整窗口大小，no则不可调 *
 ******************************************************************************/
function openWindow(url,width, height, resize) {
	var mleft = (screen.width - width) / 2;
	var mtop = (screen.height - height) / 2;
	window.open(url,"","height=" + height + ",width=" + width
					+ ",location=no,menubar=no,resizable=" + resize
					+ ",scrollbars=yes,status=no,toolbar=no,left=" + mleft
					+ ",top=" + mtop + "");
}

function openWindow(url,width, height, resize,scrollbars) {
	var mleft = (screen.width - width) / 2;
	var mtop = (screen.height - height) / 2;
	window.open(url,"","height=" + height + ",width=" + width
					+ ",location=no,menubar=no,resizable=" + resize
					+ ",scrollbars="+scrollbars+",status=no,toolbar=no,left=" + mleft
					+ ",top=" + mtop + "");
}
/**
 *
 * @param {} url
 * @param {} width
 * @param {} height
 */
function showNewWind(url,width,height){
	//alert(url);
	var showresult = window.showModalDialog(url,window,"dialogWidth="+width+"px;dialogHeight="+height+"px;location=no;status=no;scroll=yes");
	return showresult;
}

/**
 *
 * @param {} url
 * @param {} width
 * @param {} height
 */
function showNewLessWind(url,width,height){
	//alert(url);
	var showresult = window.showModelessDialog(url,window,"dialogWidth:"+width+"px;location=no;status:no;dialogHeight:"+height+"px");
	return showresult;
}

function decideLeve(source){
	var regex=/^[a-zA-Z]{1}$/g;
	return regex.test(source);
}

function openBlankWindow(url){
  openWindow(url,"650","400","yes");
}
/**
 * 时间变化
 * @param {} source
 * @param {} addval
 */
function dateToString(source,addval){
  var paddval = parseInt(addval);//增量(秒)
  var temp = source.split(":");
  var thrs = parseInt(temp[0])*3600;//小时化成秒
  var tmis = parseInt(temp[1])*60;//分钟化成秒;
  var tss = parseInt(temp[2]);//秒
  var totals = parseInt(thrs)+parseInt(tmis)+parseInt(tss)+parseInt(paddval);
  var result = timeTohhmmss(totals);
  return result;
}
/**
 * 由秒数转化成hh:mm:ss格式
 * @param {} seconds
 */
function timeTohhmmss(seconds){
	var hh;
	var mm;
	var ss;
	if(seconds==null || seconds<0){
	  return;
	}
	var pseconds = parseInt(seconds);
	//得到小时
	hh = pseconds/3600|0;
	pseconds = parseInt(pseconds)-parseInt(hh)*3600;
	if(parseInt(hh)<10){
		hh="0"+hh;
	}
	if(parseInt(hh)>=24){
		hh="00";
	}
	//得到分钟
	mm = parseInt(pseconds)/60|0;
	//得到秒
	ss = parseInt(pseconds)-parseInt(mm)*60;
	if(parseInt(mm)<10){
		mm = "0"+mm;
	}
	if(parseInt(ss)<10){
		ss = "0"+ss;
	}
	return hh+":"+mm+":"+ss;
}

/**
验证身份证号是否正确
**/
function isCardNo(num){
   if(isNaN(num)){
      alert("输入的身份证号不是数字！");
      return false;
   }
   var len = num.length;
   if(len<15 || len>18){
      alert("输入的身份证号码长度不正确定！应为15位或18位");
      return false;
   }   
   var re15 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
   var re18 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
   var res = (re15.test(num) || re18.test(num));
   if(res==false){
      alert("输入的身份证号格式不正确！");
      return false;
   }
   return res;
}

/**
* 判断字符串是否为空，若为空则返回true否则返回false 
* @param source
* @return true或者false 
**/
function isEmpty(source){
  var str = source.replace(/(^\s*)|(\s*$)/g,"");	
  if(str=="" || str.toLowerCase()=="null" || str.length<=0){
     return true;
  }else{
     return false;
  }
}

/**
 * 验证是否为电话号码（座机）
 *
 * @param {}
 *            source
 */
function isTelephone(source) {
	var regex = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/
	return regex.test(source);  //search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1
}
/**
 * 验证是否为手机号码（移动手机）
 *
 * @param {}
 *            source
 */
function isMobilePhone(source) {
	var regex = /^((\(\d{3}\))|(\d{3}\-))?1\d{10}/;
	return regex.test(source);
}
/**
 * 验证是否为电子邮箱
 *
 * @param {}
 *            source
 */
function isEmail(source) {
	var regex = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	if(source.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1){
	   return true;
	}else{
	   alert("电子邮箱格式不正确");
	   return false;
	}
}
/**
*
*验证是否为邮编
* @param
*      source
*/
function isZip(source){
    var regex=/^[1-9]\d{5}$/;
    return regex.test(source);
}
/**
*
*验证字符串是否是中文
*
**/
function isChines(source){
  var regex = /^[\u4E00-\u9FA5]+$/;
  return regex.test(source);
}

/**
  不刷新更改面页
**/
function changeText(listids,val){
  try{
     var temp = listids.split("@");
     var len = temp.length;
     for(var i = 0;i<len;i++){
        var id = temp[i];
        $("#span"+id).text(val);
        $("#span"+id).attr("style","color:red");
     }
  }catch(e){}
}

/**
  生成指定位数的随机整数
**/
function getRandomNum(count){
	var arr = new Array;
	var reNum = "";
	for(var i=0;i<count;i++){
		arr[i] = parseInt(Math.random()*10);
		reNum += String(arr[i]);
	}
	return reNum;
}
function random(min,max){
	return Math.floor(min+Math.random()*(max-min));
}
/*
*判断包含关系
*string:原始字符串
*substr:子字符串
*isIgnoreCase:忽略大小写
*/


function jsContains(string,substr,isIgnoreCase)
{
if(isIgnoreCase)
{
string=string.toLowerCase();
substr=substr.toLowerCase();
}
var startChar=substr.substring(0,1);
var strLen=substr.length;
for(var j=0;j<string.length-strLen+1;j++)
{
if(string.charAt(j)==startChar)//如果匹配起始字符,开始查找
{
if(string.substring(j,j+strLen)==substr)//如果从j开始的字符与str匹配，那ok
{
return true;
}   
}
}
return false;
}

/**
 * 随机数UUID
 * @return
 */
function makeUUID() {
    var S4 = function () {
        return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
    };
    //return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
    return (S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4());
}
/**
 * 创建EXTJS4的窗口
 * @param {} id
 * @param {} title
 * @param {} width
 * @param {} height 
 * @param {} renderTo 在什么位置弹出窗口，默认为整个页面
 * @param {} iframeSrc
 */
function createExt4Window(id,title,width,height,renderTo,iframeSrc){
	title=title||'系统弹出窗口';
	width=width||400,
    height=height||300;
    renderTo=renderTo||Ext.getBody();
    var index = random(1,13);  
    var cls = "icon-win-"+index;
    return Ext.create('Ext.window.Window',{
        id:id,
        title:title,
        width:width,
        height:height,
        iconCls:cls,
        animCollapse:false,
        constrainHeader:true,
        maximizable:true,
        modal:true,
        closable:true,
        layout:'fit',
        html:'<iframe src="'+iframeSrc+'" width="100%" height="100%" frameborder="0" scrolling="yes"></iframe>'
    });
}
/**
 * 创建EXTJS3窗口
 * @param {} id
 * @param {} title
 * @param {} width
 * @param {} height
 * @param {} closables 是否显示关闭窗口true显示，false不显示
 * @param {} iframeSrc 打开窗口的URL地址
 */
function createExtJsWindow(id,title,width,height,closables,iframeSrc,max){  
  width=width||400,
  height=height||300;
  closables=closables||false;   
  if(typeof(max)=='undefined'){
  	 max = true;
  }
  var index = random(1,13);
  var cls = "icon-win-"+index;
  new Ext.Window({
   	 id:id,
     title:title,
     width:width,
     height:height,    
     iconCls: cls,
     animCollapse:false,
     constrainHeader:true,
     maximizable:true,
     maximized:max,
     modal:true,//遮罩 
     closable:closables,
     layout: 'fit',
     html:'<iframe src="'+iframeSrc+'" width="100%" height="100%" frameborder="0" scrolling="yes"></iframe>'    
  }).show();
}
/**
 * 创建确认提示框
 * @param {} widths
 * @param {} titles
 * @param {} msg
 * @param {} fn
 */
function createExtJsConfirm(widths,titles,msg,fn){	
	widths = widths||270;
	titles=titles || '系统提示';		
	Ext.Msg.show({
	  width:widths,
	  icon:Ext.Msg.QUESTION,
      buttons:Ext.Msg.YESNO,
	  msg:msg,
	  title:titles,
	  fn:fn
	});
}

/**
 * 得到项目的基地址
 * @return {}
 */
function getContextPath() {
	var strFullPath = window.document.location.href;
	var strPath = window.document.location.pathname;
	var pos = strFullPath.indexOf(strPath);
	var prePath = strFullPath.substring(0, pos);	
	var path = strPath.substring(0, strPath.substr(1).indexOf('/') + 1);	
	return path;
}

/**
 * 创建Ext.Msg.Show提示框
 * @param {} width
 * @param {} icon
 * @param {} buttons
 * @param {} msg
 * @param {} title
 */
function createExtJsShow(widths,icons,button,msg,titles){	
	widths = widths||270;
	titles=titles || '系统提示';
	button=button||Ext.Msg.CANCEL;
	icons = icons|| Ext.Msg.ERROR;
	Ext.Msg.show({
	  width:widths,
	  icon:icons,
      buttons:button,
	  msg:msg,
	  title:titles
	});
}

function createExtJsConfirm(widths,titles,msg,fn){	
	widths = widths||270;
	titles=titles || '系统提示';		
	Ext.Msg.show({
	  width:widths,
	  icon:Ext.Msg.QUESTION,
      buttons:Ext.Msg.YESNO,
	  msg:msg,
	  title:titles,
	  fn:fn
	});
}

/**
 * 显示错误提示消息框
 * @param {Object} msg传入的错误消息
 */
function showErrorMessage(widths,msg) {
	widths = widths||270;
	Ext.MessageBox.show({
		width:widths,
		buttons:Ext.Msg.OK,
		msg:msg,
		icon:Ext.MessageBox.ERROR,
		title:"系统提示"
	});
}

/**
 *  显示提示信息
 * @param {Object} msg
 */
function showInfoMessage(msg) {
	Ext.MessageBox.show({
		width:320,
		buttons:Ext.Msg.OK,
		msg:msg,
		icon:Ext.MessageBox.INFO,
		title:"系统提示"
	});
}
/**
 * 给URL追加参数
 * @param {} url
 * @param {} parameter 参数名
 * @param {} value  参数值
 */
function urlAddParmert(url,parameter,value){
  var buf = new StringBuffer();
  if(!isEmpty(url)){
  	 buf.append(url);
  	 if(url.indexOf("?") > -1){  //已经有参数            
         buf.append("&");
     }else{
         buf.append("?");
     }
     buf.append(parameter);
     buf.append("=");
     buf.append(value);
  }  
  return buf.toString();
}

/**
 * 得到文件的扩展名
 * @param {} filename
 */
function getFileExt(filename){
  var d=/\.[^\.]+$/.exec(filename);
  var ext = new String(d);  
  var s = ext.toLowerCase();
  return s;
}
/**
  easyui创建数据表格
 * @param {} config
 */
function dataTable(config){
  var isPage = config.showPage;
  var single = config.singleSelect||false;
  var toolbar = config.toolbar;
  var pageSize1 = config.pageSize;
  if(typeof(toolbar)=='string'){
     toolbar='#'+toolbar;
  }
  var height = config.height;
  if(typeof(height)=='undefined'){
    height='auto';
  }
  if(typeof(pageSize1)=='undefined'){
     pageSize1 = 20;
  }
  $("#"+config.tableId).datagrid({
     title : config.title||'',
     border : false,		
	 nowrap : true,
	 autoRowHeight : false,
	 rownumbers:true,
	 striped : true,
	 height:height,
	 singleSelect:single,
     collapsible : true,
	 loadMsg:'正在加载数据，请稍候......',
	 url:config.url,
	 idField:config.idField,
	 type:'json',
	 columns:config.columns,
	 iconCls:config.iconCls||'icon-datagrid',
	 pagination : isPage,
	 //toolbar : '#'+config.toolbar,
	 toolbar:toolbar,
	 pageSize:pageSize1,
	 onCheck:function(rowIndex,rowData){
	 	if(typeof(config.onCheck)!="undefined"){
	 		config.onCheck(rowIndex,rowData);
	 	}	 	
	 },
	 onUncheck:function(rowIndex,rowData){
	 	if(typeof(config.onUncheck)!="undefined"){
	 		config.onUncheck(rowIndex,rowData);
	 	}	 	
	 },
	 onCheckAll:function(rows){
	 	if(typeof(config.onCheckAll)!="undefined"){
	 		config.onCheckAll(rows);
	 	}	 	
	 },
	 onUncheckAll:function(rows){
	 	if(typeof(config.onUncheckAll)!="undefined"){
	 		config.onUncheckAll(rows);
	 	}	 	
	 },
	 onSelect:function(rowIndex, rowData){
	 	if(typeof(config.onSelect)!="undefined"){
	 		config.onSelect(rowIndex,rowData);
	 	}
	 },
	 onUnselect:function(rowIndex, rowData){
	 	if(typeof(config.onUnselect)!="undefined"){
	 		config.onUnselect(rowIndex,rowData);
	 	}
	 },
	 onSelectAll:function(rows){
	 	if(typeof(config.onSelectAll)!="undefined"){
	 		config.onSelectAll(rows);
	 	}
	 },
	 onUnselectAll:function(rows){
	 	if(typeof(config.onUnselectAll)!="undefined"){
	 		config.onUnselectAll(rows);
	 	}
	 },
	 onBeforeEdit:function(rowIndex,row){
	    if(typeof(config.onBeforeEdit)!="undefined"){
	 		config.onBeforeEdit(rowIndex,row);
	 	}
	 },
	 onAfterEdit:function(rowIndex,row,changes){
	    if(typeof(config.onAfterEdit)!="undefined"){
	 		config.onAfterEdit(rowIndex,row,changes);
	 	}
	 },
	 onCancelEdit:function(rowIndex,row){
	    if(typeof(config.onCancelEdit)!="undefined"){
	 		config.onCancelEdit(rowIndex,row);
	 	}
	 },
	 onClickCell:function(rowIndex, field, value){
	    if(typeof(config.onClickCell)!="undefined"){
	 		config.onClickCell(rowIndex,field,value);	    	
	 	}
	 },
	 onDblClickCell:function(rowIndex, field, value){
	 	if(typeof(config.onDblClickCell)!="undefined"){
	 		config.onDblClickCell(rowIndex,field,value);	    	
	 	}
	 }
  });  
  
  if(isPage){
     var p = $('#'+config.tableId).datagrid('getPager');
     var disMsg = '当前显示 {from} - {to} 条记录   共 {total} 条记录';    
     var isMsg = config.displayMsg;
     if(typeof(config.displayMsg)=="undefined"){
     	isMsg = true;
     }else{
     	isMsg = config.displayMsg;
     }
     if(!isMsg){
     	disMsg = '';
     }      
     $(p).pagination({  
        pageSize: pageSize1,//每页显示的记录条数，默认为10  
        pageList: [5,10,15,20,30,50,100],//可以设置每页记录条数的列表  
        beforePageText: '第',//页数文本框前显示的汉字  
        afterPageText: '页    共 {pages} 页',  
        displayMsg: disMsg,
        onChangePageSize:function(pageSize){
           $("#"+config.tableId).datagrid('clearSelections');
           $("#"+config.tableId).datagrid('unselectAll');
        }
     });
  }
}

/**
 * 提交表单
 * @param {} config
 */
function submitForm(config){
	$.messager.progress();
	$("#"+config.formId).form('submit',{
	   url:config.url,
	   onSubmit:function(){
	      var isValid = $(this).form('validate');	      
	      if(!isValid){	      	
            $.messager.progress('close');
          }
          return isValid;
	   },
	   success:function(result){	   	 
	   	  $.messager.progress('close');
	      config.callback(result);	      
	   }
	});
}
/**
 * easyui 删除数据
 * @param {} config
 */
function deleteData(config){
   var title = "<span style='color:red;'>"+config.len+"条</span>"||"";
   $.messager.confirm('系统提示',"确定要删除所选择的"+title+"记录吗？",function(r){
      if(r){
         $.post(config.url,config.params,function(data){
            config.callback(data);
         },config.dataType||'text');
      }
   });
}

//更改数据
function changeData(config){
	   var title = "<span style='color:red;'>"+config.len+"条</span>"||"";
	   $.messager.confirm('系统提示',"确定要更改所选择的"+title+"记录吗？",function(r){
	      if(r){
	         $.post(config.url,config.params,function(data){
	            config.callback(data);
	         },config.dataType||'text');
	      }
	   });
}

/**
 * easyui删除行数据
 * @param {} config
 */
function deleteRows(config){
   var async = config.async||false;
   $.ajax({
      url:config.url,
      type:'POST',
      data:config.params,
      dataType:config.dataType,
      async:async,
      success:function(msg){
         config.success(msg);
      }
   });
}
/**
 *刷新列表
 * @param {} config
 */
function reloadTable(config){  
  $("#"+config.tableId).datagrid("clearSelections");
  $("#"+config.tableId).datagrid("unselectAll");
  $("#"+config.tableId).datagrid("uncheckAll"); 
  if(typeof(config.params)!="undefined"){
	 $("#"+config.tableId).datagrid("reload",config.params);		
  }else{
     $("#"+config.tableId).datagrid("reload");
  }  
}
/**
 * 刷新树
 * @param {} config
 */
function reloadTree(config){  
   var node = $("#"+config.treeId).tree('getRoot');
   $('#'+config.treeId).tree('reload',node.target);
}
/**
 * 创建iframe框架
 * @param {} url
 * @return {}
 */
function createFrame(url){	
	if(url.indexOf("http://")<0 && url.indexOf("HTTP://")<0){
		url = getContextPath()+"/"+url;
	}	
	var s = '<iframe scrolling="auto" frameborder="0"  src="'+url+'" style="width:100%;height:100%;"></iframe>';	
	return s;
}
/**创建easyui的window窗口
 * @param {} config
 */
function easyuiWidow(config){
	var width = config.width||800;
	var heigth = config.height||600;
	var top = config.top||10;
	var title = config.title||'新窗口';	
	$("#"+config.winId).window({
	 title:title,
     width:width,   
     height:heigth,   
	 content:createFrame(config.url),
	 iconCls:config.iconCls||'icon-save',
	 collapsible:false,	
	 modal:true,
	 top:top,
	 disabled:true,
	 minimizable:false,
	 inline:false
   });
}
/**
 * 在列表中创建操作图标的方法（包含有修改，删除，查看）
 * @param {} row_id 记录对应的ID
 */
function createOperate(row_id){
   var config = arguments[1];
   var showDel = true;
   var showView = true;
   var showSave = false;
   var showEdit = true;
   
   if(typeof(config)!="undefined"){
   	  showDel = config.showDel;
   	  showView = config.showView;
   	  showSave = config.showSave;
   	  showEdit = config.showEdit;
   	  if(typeof(showDel)=="undefined"){
     	showDel = true;
      }
      if(typeof(showView)=="undefined"){
     	showView = true;
      }
      if(typeof(showEdit)=="undefined"){
     	showEdit = true;
      }
      if(typeof(showSave)=="undefined"){
     	showSave = false;
      }
   }  
   var str_mid = "'"+row_id+"'";
   var strs = '';
   if(showEdit){
   	 strs+='<span>&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);" onclick="updateRowData('+str_mid+');"><img src="images/icon/application_form_edit.png" title="修改该行数据" border="0" /></a></span>';
   }
   if(showDel){
     strs+='&nbsp;&nbsp;<span>&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);" onclick="deleteRowData('+str_mid+');"><img src="images/icon/delet.gif" title="删除该行数据" border="0"/></a><span>';   	 
   }
   if(showSave){
   	  strs+='&nbsp;&nbsp;<span>&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);" onclick="saveRowData();"><img src="images/icon/filesave.png" title="保存数据" border="0"/></a><span>';  
   }
   if(showView){
   	  strs+='&nbsp;&nbsp;<span>&nbsp;&nbsp;&nbsp;<a href="javascript:void(0);" onclick="viewDetail('+str_mid+');"><img src="images/icon/query.gif" title="查看详细" border="0"/></a><span>';  
   }   
   return strs;
}

//字符串编码
function strEncode(source){
  return encodeURIComponent(source); 
}
//字符串解码
function strDencode(source){
  return decodeURIComponent(source);
}
/**
 * 字符串转正形
 * @param source
 * @returns
 */
function strParseInt(source){
	if(isEmpty(source) || isNaN(source)){
		return 0;
	}
	return parseInt(source); 
}
/**
 * 字符串转Float形
 * @param source
 * @returns
 */
function strParseFloat(source){	
	if(isEmpty(source) || isNaN(source)){
		return 0;
	}
	return parseFloat(source);
}
function getTodayDate(){  
  var now = new Date();  
  var yy = now.getFullYear();  
  var mm = now.getMonth()+1; 
  var dd=now.getDate();
  var day = new Array();  
  day[0] = "星期日";  
  day[1] = "星期一";  
  day[2] = "星期二";  
  day[3] = "星期三";  
  day[4] = "星期四";  
  day[5] = "星期五";  
  day[6] = "星期六";				
  return( yy + '年' + mm + '月'+ dd +'日&nbsp;'+day[now.getDay()]);  
} 